perm filename STEST.MF[RPR,TEX] blob
sn#575877 filedate 1981-03-25 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00010 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 mi=0
C00004 00003 "the letter h, possibly modified"
C00005 00004 "the l e t t e r y"
C00007 00005
C00008 00006
C00009 00007
C00010 00008
C00011 00009
C00012 00010
C00013 ENDMK
C⊗;
mi=0;
new codeoffset; codeoffset=0;
new mc,lbowl,rbowl,rstem,rv,hic; % quantities used to compute spacing
mc=mi/pu; % converts to relative units when $\\{mi}=1$
lbowl=.3phh.slant+.5pu; % used at left of upper-case bowl
rbowl=.7phh.slant-.5pu; % used at right of upper-case bowl
rstem=phh.slant+(ucs+2sc-1.5)pu; % used at right of tall stem
rv=phh.slant+(ucs+2sc-1)pu; % used at right of tall diagonal
hic=1-.5mi; % used when half the italic correction goes into \\{rtcorr}
new aa,bb,aaa,bbb,spa,spb,spc; % variables to specify the spen
aa=(sqrt 1.25)(.2pwv.pixels+blacker);
bb=(sqrt 1.25)(.3pw.pixels+blacker);
aaa=1/aa/aa; bbb=1/bb/bb;
spen(aaa+4bbb,4aaa-4bbb,4aaa+bbb,0,0,0,0);
new cor,corr; % commonly used spacing corrections
cor=phh.slant/pu;
if cor>1: corr=1;
else: corr=cor;
fi;
"the letter h, possibly modified";
call charbegin(`h,10,sc,sc,ph,0,1/3[pe,px].slant+.5pwi+(sc-2)pu);
hpen; x1+.5u=x2=good1 2.5u; x3=good1(r-2.5u);
top1y1=h; bot1y2=0;
w1 draw 1..2; % left stem
call `a hstroke(2,3,4); % shoulder and right stem
if lcs≠0: call `b sserif(1,1,2,-lcs); % upper serif
if 2lcs.u+w1>x3-x1-.5u: new aa; 2aa.u+w1=x3-x1-.5u;
else: new aa; aa=lcs;
fi;
call `c serif(2,1,1,-lcs);
call `d serif(2,1,1,aa); % lower left serif
call `e serif(4,1,3,-aa);
call `f serif(4,1,3,lcs); % lower right serif
fi.
"the l e t t e r y";
call charbegin(`y,10,.5+sc,.5+sc,px,pd,px.slant+.5pw+(lcs+sc-1.5)pu);
hpen; x1=good1(2.5u-.5(w2-w0)); x4=good0(r-2.5u);
x2-x1=x4-x3; lft0x3=lft1x2+.5del;
top1y1=m; y4=y1; bot1y2=-o;y3=y2;
w1 draw 1..2; w0 draw 2..3; % left diagonal stroke
rpen#; w1 draw 3..4; % erase excess at lower right
cpen; lft3x8=lft0x7=round 1.25u;
bot3y8=-.9d; y7=y8; w3 draw 8; % bulb
hpen; x6=3u; bot0y6=-d-oo; bot0y5=-.75d;
new aa; x5=aa[x3,x4]; y5=aa[y3,y4];
w0 draw 4..3{x3-x4,y3-y4}..6{-1,0}..7{0,1}; % right diagonal and tail
if lcs≠0: call `a serif(1,1,2,-lcs);
call `b serif(1,1,2,lcs); % left serif
call `c dserif(4,0,3,-lcs);
call `d dserif(4,0,3,lcs); % right serif
fi.